#ifndef __SERALIZE_H__
#define __SERALIZE_H__

#include"../DataBase/EvSatelliteData.hpp"
#include"../DataBase/EvGnssSNData.hpp"
#include"../DataBase/EvSecIslSNData.hpp"
#include"../DataBase/EvSceneData.hpp"
#include"../MapServer/Keti2Mgr.hpp"
#include"rapidjson/document.h"
#include"rapidjson/stringbuffer.h"
#include"rapidjson/writer.h"
#include"MapProtocol.hpp"
#include<string>

namespace SC_SUN
{

    //将卫星数据转换成字符串
    std::string SatelliteToJson(EvSatelliteData& sat);
    EvSatelliteData JsonToSatellite(const std::string& jsonStr);

    //获取卫星数据列表
    std::string SatelliteListToJson(std::vector<EvSatelliteData>& sats);
    std::vector<EvSatelliteData> JsonToSatelliteList(const std::string& jsonStr);

    //GNSS数据转换成字符串
    std::string GnssToJson(EvGnssSNData& gnss);
    EvGnssSNData JsonToGnss(const std::string& jsonStr);

    //星间数据转换成字符串
    std::string SecISNToJson(EvSecIslSNData& sec);
    EvSecIslSNData JsonToSecISN(const std::string& jsonStr);

    //场景信息转换成字符串
    std::string SceneToJson(EvSceneData& scene);
    EvSceneData JsonToScene(const std::string& jsonStr);

    //课题二相关数据转换
    KeTi2Mgr::Keti2Info Keti2JsonToObj(const std::string& jsonStr);

    //场景仿真时间信息
    std::string SceneTimeToJson(SceneTimeInfoMsg& time);
    SceneTimeInfoMsg JsonToSceneTime(const std::string& jsonStr);

}


#endif